Method and apparatus for processing data

ABSTRACT

A method of processing data for at least one wireless communication network and a data processing system for implementing such a method are provided. The method comprises determining geolocation information for data segments received at a plurality of distributed components of a data processing system, the data segments being received from at least one network element of the wireless communication network, and forwarding the data segments to backend processing resources based at least partly on their respective geolocation information.

FIELD OF THE INVENTION

The field of the invention relates to a method of processing data for atleast one wireless communication network, and a data processing systemtherefor.

BACKGROUND OF THE INVENTION

Wireless communication systems, such as the 3^(rd) Generation (3G) ofmobile telephone standards and technology, are well known. An example ofsuch 3G standards and technology is the Universal MobileTelecommunications System (UMTS™), developed by the 3^(rd) GenerationPartnership Project (3GPP™) (www.3gpp.org).

The 3^(rd) and 4^(th) generations of wireless communications, andparticular systems such as LTE (Long Term Evolution), have generallybeen developed to support macro-cell mobile phone communications, andmore recently femto-cell mobile phone communications. Here the ‘phone’may be a smart phone, or another mobile or portable communication unitthat is linked wirelessly to a network through which calls etc. areconnected. Henceforth all these devices will be referred to as mobilecommunication units. Calls may be data, video, or voice calls, or acombination of these. An increasing proportion of communications involvedata rather than voice, and are technically referred to as being a‘connection’, rather than a ‘call’. Nevertheless, the terms ‘connection’and ‘call’ as used herein are to be understood as being interchangeableand each referring to data, video and/or voice calls/connections unlessotherwise defined.

Typically, mobile communication units, or User Equipment as they areoften referred to in 3G parlance, communicate with a Core Network of the3G (or 4G) wireless communication system. This communication is via aRadio Network Subsystem. A wireless communication system typicallycomprises a plurality of Radio Network Subsystems. Each Radio NetworkSubsystem comprises one or more cells, to which mobile communicationunits may attach, and thereby connect to the network. A base station mayserve a cell. Each base station may have multiple antennas, each ofwhich serves one sector of the cell.

Operators of wireless communication systems need to know what ishappening in the system, with as much precision as possible. Aparticular issue is the need to solve ‘faults’. Faults may take a widevariety of forms, but can be summarised as events when the networkand/or one or more mobile communication units do not perform asexpected.

In most conventional wireless networks, quality of service informationis generally reported on a per-cell or per-sector basis. A result ofthis is that network statistics obtained may only provide an indicationof the average data rate or average number of dropped calls, forexample, in a given sector or cell. It is not usually possible to obtainnetwork statistics from such conventional quality of service informationfor a particular portion of a sector or cell that may suffer from poordata rates or dropped calls due, in part, to these particular sectors orcells having poor coverage.

It is known to utilise and compare, in real time, the signatures ofmobile communication units to determine location information. Thesesystems are typically located at, for example, switching centres whereraw communication session data is stored. Modern wireless communicationsystems allow a high degree of autonomy to individual mobilecommunication units and to base stations. As a consequence, decisionsabout setting up and ‘tearing down’ call links throughout the networkare not all made centrally. As a result, a complication arises from thevolume of raw communication session data generated within the wirelesscommunication system. In one day, a wireless communication system maygenerate 100 gigabytes of data about calls that have been made in thenetwork.

One constraint in particular is the processing requirements forprocessing the large volumes of raw data in order to obtain meaningfulinformation. With conventional systems, which are typically located at,for example, switching centres where raw communication session data isstored, significant processing resources are required to be provided ateach such location (e.g. at each switching centre) for processing the‘local’ data stored at the respective location.

Such a distribution of processing resources across multiple locationswithin a network, with the processing resources at each location beingdedicated to the processing of local data, is an inefficient use of suchprocessing resources since often the processing resources at many of thelocations may not be fully utilised. Furthermore, if the processingrequirements at a particular location are increased, for example due toan increase in network capacity corresponding to that location, theprocessing capacity at that location may be exceeded even if only by asmall amount. As a result, additional processing hardware may need to besourced. Such a small additional processing requirement could requirereplacement or additional sets of processing cards, racks or storage tobe implemented. In this case, a relatively large capital outlay may berequired by the network operator to provide for a relatively smallincrease in required processing capacity.

A conventional approach to improve efficiency in mass processing systemsis to provide the data to be processed to one or more centralised orshared processing resources. For example, data from distributed sites(e.g. the switching centres of a wireless communication system) may beprovided to centralised processing resources or to one or more shared(e.g. cloud) processing resources. In this manner, more efficientprocessing of data from multiple distributed sites may be performed.

Another important requirement for the Applicant's data processing systemis that users are able to access data in near real time. For example,data relating to an event is available to users within a relativelyshort period of time, for example within, say, a couple of minutes ofthe data being made available from the radio network controller (RNC),in a 3G (or 4G) wireless communication system. It is worth noting thatin a conventional 3G/4G wireless communication system, data relating torecent calls is made available by RNCs in batches, for examplecomprising 15 minutes worth of call data. As such, data may be madeavailable by an RNC approximately every 15 minutes, with a potential 15minute latency for some of the call data between the respective eventand the data being made available by the RNC. Because of this inherent15 minute latency between an event occurring and the data being madeavailable by the RNC, it is even more important to minimise any furtherdelay between the data being made available by the RNC and the databeing available to users.

This is in contrast to conventional data processing systems whichperform ‘batch processing’ whereby data is processed off-line, and thereis a delay of many hours typically between an event of interest takingplace and the resulting diagnostic information being available to users.Furthermore, a relatively large number of users may be required toaccess data substantially simultaneously. As such, not only is there arequirement for data to be processed efficiently in terms of cost, butalso in terms of enabling near real time access of data by multipleusers.

Thus there is a need for an improved method and apparatus for processingdata within a wireless communication network.

SUMMARY OF THE INVENTION

Accordingly, the invention seeks to mitigate, alleviate or eliminate oneor more of the abovementioned disadvantages singly or in anycombination.

According to a first aspect of the present invention, there is provideda method of processing data for at least one wireless communicationnetwork. The method comprises determining geolocation information fordata segments received at a plurality of distributed components of adata processing system, the data segments being received from at leastone network element of the wireless communication network, andforwarding the data segments to backend processing resources based atleast partly on their respective geolocation information.

In this manner, data to be processed may be ‘sharded’ based on thegeolocation information of the data segments, and allocated to backendprocessing resources accordingly. Advantageously, because wirelesscommunication network data queries typically relate to datacorresponding to particular geographical locations/regions,geographically sharding the data in the manner described enables thedata to be allocated across a relatively large number of relativelysmall processing resources whilst still enabling queries to be servicedby a single (or few) processing resources. This enables a significantamount of parallelism to be implemented within the data processingsystem, significantly speeding up the processing of data, therebyfacilitating the near-real-time access of data by users. Furthermore, byfacilitating the use of relatively small processing resources in thismanner, additional processing resources can be added in relatively smallincrements, enabling a more cost effective manner of increasing (ordecreasing) processing capabilities as required.

According to a second aspect of the present invention, there is provideda data processing system for processing data from at least one wirelesscommunication network. The data processing system comprising at leastone allocation component arranged to determine geolocation informationfor data segments received at a plurality of distributed components of adata processing system, the data segments being received from at leastone network element of the wireless communication network, and forwardthe data segments to backend processing resources based at least partlyon their respective geolocation information.

According to a third aspect of the present invention, there is providedan allocation component of a data processing system for processing datafrom at least one wireless communication network. The allocationcomponent being arranged to determine geolocation information for datasegments received at a plurality of distributed components of a dataprocessing system, the data segments being received from at least onenetwork element of the wireless communication network, and forward thedata segments to backend processing resources based at least partly ontheir respective geolocation information.

According to a fourth aspect of the present invention, there is provideda distributed component of a data processing system for processing datafrom at least one wireless communication network. The distributedcomponent of the data processing system being arranged to receive datafrom at least one network element of the wireless communication network,determine geolocation information for data segments within the receiveddata, and forward data segments within the received data to backendprocessing resources based at least partly on their respectivegeolocation information.

According to a fifth aspect of the present invention, there is provideda non-transitory computer program product having computer-readable codestored thereon for programming a data processing module to perform themethod of the first aspect of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described, by way of example only,with reference to the accompanying drawings, in which:

FIG. 1 illustrates a simplified block diagram of an example of a dataprocessing system.

FIGS. 2 and 3 illustrate simplified flowcharts of an example of a methodof processing data for a wireless communication network.

FIG. 4 illustrates a coverage area of the wireless communicationnetwork.

FIG. 5 illustrates a simplified block diagram of an alternative exampleof a data processing system.

FIG. 6 illustrates a typical computing system that may be employed toimplement data processing functionality in embodiments of the invention.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

Examples of the invention will be described in terms of a system and amethod for managing data within a wireless communication network, suchas a network implemented in accordance with the 3^(rd) Generation (3G)and/or 4^(th) Generation (4G) of mobile telephone standards andtechnology. Examples of such 3G and 4G standards and technology are theUniversal Mobile Telecommunications System (UMTS™) and Long TermEvolution (LTE), developed by the 3^(rd) Generation Partnership Project(3GPP™) (www.3gpp.org).

According to an example of a first aspect of the present invention thereis provided a method of processing data for at least one wirelesscommunication network. The method comprises determining geolocationinformation for data segments received at a plurality of distributedcomponents of a data processing system, the data segments being receivedfrom at least one network element of the wireless communication network,and forwarding the data segments to backend processing resources basedat least partly on their respective geolocation information.

In some optional embodiments, the method may further comprise forwardingthe data segments to backend processing resources further based on atleast one of:

-   -   an anticipated volume of data for individual geographical        regions; and    -   a processing capacity of backend processing resources.

In some optional embodiments, the method may further comprise allocatingpredefined geographical regions to backend processing resources,identifying to which predefined geographical regions the data segmentsrelate based at least partly on their respective geolocationinformation, and forwarding the data segments to the backend processingresources to which the predefined geographical regions to which theyrelate have been allocated.

In some optional embodiments, the method may further comprise assigningan index value to each predefined geographical region, associatingbackend processing resources with the index values assigned to thepredefined geographical regions allocated thereto, determininggeolocation information for the data segments, identifying to whichpredefined geographical regions data segments within the received datarelate based at least partly on their respective geolocationinformation, and forwarding the data segments to backend processingresources associated with the index values of their respectiveidentified predefined geographical regions.

In some optional embodiments, the method may further comprise allocatingbackend processing resources to predefined geographical regions based atleast partly on at least one of:

-   -   an anticipated volume of data for individual geographical        regions; and    -   a processing capacity of backend processing resources.

In some optional embodiments, the data segments forwarded to the backendprocessing resources may comprise at least one of:

-   -   session connection setup information;    -   session closedown information;    -   identification of radio links involved in session;    -   measured radio propagation delay;    -   radio bearer or bearers involved during session;    -   type of session;    -   measurement reports;    -   received signal code power; and    -   subscriber information.

In some optional embodiments, the method may further comprise, at thebackend processing resources, pre-processing received data to enableefficient storage and access of the received data, and storing thepre-processed data for subsequent processing to generate statisticaldata for the wireless communication network.

In some optional embodiments, the method may further comprise, at thebackend processing resources, performing near-real-time processing ofthe stored, pre-processed data in response to requests from clientapplications.

In some optional embodiments, the method may further comprise receivingat a plurality of distributed components of a data processing systemfrom at least one network element of the wireless communication network,extracting a subset of the received data, determining geolocationinformation for data segments within the extracted subset of the data,and forwarding the data segments within the extracted subset of the datato backend processing resources based at least partly on theirrespective geolocation information. Wherein the method may still furthercomprise, at the backend processing resources, receiving at the backendprocessing resources data segments from the plurality of distributedcomponents of the processing system, and processing the receivedextracted data segments to generate statistical data for the wirelesscommunication network.

In some optional embodiments, the data received at the plurality ofdistributed components of the data processing system may comprise rawcommunication session data for all communication sessions of therespective network elements.

In some optional embodiments, the method may further comprise, at theplurality of distributed components of the data processing system,storing the received raw communication session data.

According to an example of a second aspect of the present inventionthere is provided a data processing system for processing data from atleast one wireless communication network. The data processing systemcomprises at least one allocation component arranged to determinegeolocation information for data segments received at a plurality ofdistributed components of a data processing system, the data segmentsbeing received from at least one network element of the wirelesscommunication network, and forward the data segments to backendprocessing resources based at least partly on their respectivegeolocation information.

According to an example of a third aspect of the present invention thereis provided an allocation component of a data processing system forprocessing data from at least one wireless communication network. Theallocation component is arranged to determine geolocation informationfor data segments received at a plurality of distributed components of adata processing system, the data segments being received from at leastone network element of the wireless communication network, and forwardthe data segments to backend processing resources based at least partlyon their respective geolocation information.

According to an example of a fourth aspect of the present inventionthere is provided a distributed component of a data processing systemfor processing data from at least one wireless communication network.The distributed component of the data processing system being arrangedto receive data from at least one network element of the wirelesscommunication network, determine geolocation information for datasegments within the received data, and forward data segments within thereceived data to backend processing resources, based at least partly ontheir respective geolocation information.

Referring first to FIG. 1, there is illustrated a simplified blockdiagram of an example of a data processing system 100 such as may beused for storing and subsequent access of data from one or more wirelesscommunication networks. The various components within the dataprocessing system 100 may be implemented in any suitable manner. Forexample, the various components of the data processing system 100 may beimplemented by way of computer program code, and arranged to be executedon one or more data processing modules. The computer program code may bestored within one or more non-transitory computer program products, forexample such as one or more memory element(s). Such memory element(s)may comprise any form of computer-readable storage device, such as ahard disc, a CD-ROM, an optical storage device, a magnetic storagedevice, a Read Only Memory, ROM, a Programmable Read Only Memory, PROM,an Erasable Programmable Read Only Memory, EPROM, an ElectricallyErasable Programmable Read Only Memory, EEPROM, and a Flash memory.

The data processing system 100 comprises a plurality of distributedcomponents 110, each distributed component 100 arranged to receive datafrom one or more network elements 112. In the example illustrated inFIG. 1, the distributed components 110 comprise mobile switching centres(MSCs), which are arranged to receive data from radio networkcontrollers (RNCs) 112. In a 3G system, the RNCs 112 are typicallylocated at their respective MSC 110. In some examples, the data receivedby the distributed components 110 comprises raw communication sessiondata for all communication sessions of the respective network elements112 and each of the distributed components 110 may be arranged to storethe raw communication session data, for example within local datastorage devices 114. In this manner, all raw communication session datamay be stored, at least for a period of time, and available should it berequired to be accessed.

The data processing system 100 further comprises backend processingresources, indicated generally at 120. In the illustrated example, thebackend processing resources comprise a plurality of database servers122 arranged to receive data from the distributed components 110 andperform, for example, pre-processing of the received data to enableefficient storage and access of the received data. In the illustratedexample, each database server 122 is operably coupled to one or moredata storage devices 124 in which the pre-processed data may be stored,for example for subsequent processing to generate statistical data forthe wireless communication network. The backend processing resources 120may further be arranged to perform near-real-time processing of thestored, pre-processed data in response to requests from clientapplications. As such, in the illustrated example the backend processingresources 120 are operably coupled to one or more client servers 130through which users operating user terminals 135 are able to access datastored within data storage devices 124. Examples of the contemplatedfunctionality of the database server 122 are described in theApplicant's co-pending U.S. patent applications: U.S. patent applicationSer. No. 13/849,245; U.S. patent application Ser. No. 13/849,262; andU.S. patent application Ser. No. 13/849,279, all of which areincorporated by reference herein.

Referring now to FIGS. 2 and 3, there are illustrated simplifiedflowcharts 200, 300 of an example of a method of processing data from awireless communication network, such as may be implemented within thedata processing system 100 of FIG. 1, and which enables data from awireless communication network to be processed in an efficient and costeffective manner, whilst also enabling near real time access of data bymultiple users.

Referring first to FIG. 2, the method steps illustrated in FIG. 2 may beperformed within any appropriate part of the data processing system orof the wireless communication network of which the distributedcomponents 110 thereof form a part. For example, the method stepsillustrated in FIG. 2 may be performed within an operations supportsystem (OSS) of the wireless communication network, such as illustratedat 140 in FIG. 1.

The method starts at 210 and moves on to step 220 where, in theillustrated example, index values are assigned to predefinedgeographical regions. For example, and as illustrated in FIG. 4, acoverage area of the wireless communication network, which in theexample illustrated in FIG. 4 comprises the United Kingdom, may bedivided into a number of geographic regions (for example of, say, a fewsquare kilometres, although this could be any suitable area dependingupon the capabilities of the processing/storage units available withinthe backend resources and the anticipated volume of calls in thegeography as a whole). In the example illustrated in FIG. 4, a simplegrid system has been used to divide up the coverage are into predefinedgeographical regions. However, it will be appreciated that any suitablesystem may be used, and the present invention is not limited to such auniform grid system.

The geographical regions are each assigned an index value, for examplesuch as a simple index number as indicated at 400 in FIG. 4. However, itwill be appreciated that any suitable indexing system may be used andthe present invention is not limited to the simple numbering systemillustrated in FIG. 4, and herein described. For example, an indexingsystem using, say, a grid reference or latitude/longitude co-ordinates,etc. of a centre point of the respective geographical region mayalternatively be used.

Having assigned index values to the predefined geographical regions, themethod moves on to step 230 where predefined geographical regions areallocated to backend processing resources. The method may compriseallocating backend processing resources to predefined geographicalregions based on any suitable parameters such as anticipated volumes ofdata for individual geographical regions, processing capacities ofbackend processing resources, etc. In this manner, the distribution ofthe required processing of data may be allocated across the backendprocessing resources in such a manner as to evenly distribute theprocessing load across the backend processing resources relative to theprocessing capabilities of the individual backend processing resources.

In some examples, such as the example herein described, it iscontemplated that geographical regions of substantially equal size maybe defined. As such, the volumes of data for individual geographicalregions will vary significantly. For example, primarily ruralgeographical regions will typical comprise significantly smaller volumesof data than, say, inner city geographical regions. In this manner, theallocation of geographical regions to backend processing resources maybe implemented to take into account such variations in volumes oftraffic between geographical regions.

In some alternative examples it is contemplated that geographicalregions may alternatively be defined in order to achieve a substantiallyuniform anticipated volume of traffic within each geographical region.In this manner, a substantially even allocation of geographical regionsto backend processing resources may be implemented.

In the illustrated example, once the geographical regions have beenallocated to backend processing resources, the method moves on to step240 where the backend processing resources are associated with the indexvalues assigned to the predefined geographical regions allocatedthereto. For example, five database servers 122 are illustrated in FIG.1, labelled A to E. Each database server 122 may have allocated theretoone or more predefined geographical regions. Accordingly, each databaseserver 122 may be associated with one or more corresponding indexvalues. Table 1 below illustrates an example of the index values 400 forthe geographical regions illustrated in FIG. 4 being assigned to thedatabase servers 122 of FIG. 1.

TABLE 1 Example of Assignment of Region Indexes to Backend ResourcesRegion Index 1 2 3 4 5 6 7 8 9 10 11 . . . n DB A A A A B B C C D E E .. . N Server

In the example illustrated in Table 1, four geographical regions havebeen assigned to database server A, whilst two geographical regions havebeen assigned to each of database servers B, C and E and a singlegeographical region has been assigned to database server D. Fourgeographical regions may have been assigned to database server A due to,say, those four regions having relatively low anticipated volumes ofdata and/or database server A comprising relatively high processingand/or storage capabilities. Conversely, only a single geographicalregion may have been assigned to database server D due to thatgeographical region comprising a relatively high anticipated volume ofdata and/or database server D comprising a relatively low processingand/or storage capability. In this way, overloading and/orunderutilisation of backend processing resources may be substantiallyavoided, with each processing its data independently of the others (i.e.in parallel). This use of parallel processing, together with appropriateallocation of data to backend processing resources leads to a suitablyfast response time for the users whilst utilising affordable (and easilyexpanded) hardware.

Advantageously, by allocating backend resources on a geographical basisas described above enables geographical based queries to be handled moreefficiently. For example, if the backend processing resources wereallocated in a non-geographical basis, for example ‘on the fly’ witheach item to be processed being allocated to the least busy (or full)processor/server, geographic based queries would need to fetch data froma huge number of locations across a number of servers, greatly reducingaccess speeds to the required data and hence greatly slowing thefulfilment of the query. The present invention takes advantage of thefact that the volumes of data generated by each geographic region aretypically predictable and also relatively invariant (the ‘average’ dailypopulations, both static and mobile, of each region will typically notchange quickly over time) and hence allocation by geography is a goodway of allocating processing/storage resources, without undue wastage.

Having associated backend processing resources with the index valuesassigned to the predefined geographical regions allocated thereto, themethod moves on to step 250 where one or more data allocationcomponents, such as those illustrated at 150 in FIG. 1, are configuredin accordance with the association of backend processing resources withindex values. The part of the method of the flowchart 200 of FIG. 2 thenends at 260.

Referring back to FIG. 1, having been configured, the data allocationcomponents 150 are able to determine to which backend resourcesindividual data segments received from the network elements are to beforwarded to, for example in accordance with the method steps of FIG. 3.

Referring now to FIG. 3, this part of the method starts at 310 and moveson to step 320 where data from network elements of one or more wirelesscommunication networks is received at a plurality of distributedcomponents of a data processing system. In the example illustrated inFIG. 1, such data is received at the MSCs 110 as a stream of data fromeach of the RNCs 112. The raw (i.e. unprocessed) data may be stored (atleast for a period of time), as illustrated at step 330, for examplewithin the local data storage devices 114.

The raw, unprocessed data from the RNCs 112 represents a huge amount ofinformation that would require a very high speed, and very expensive,communications link in order to transport the data to backend processingresources. Accordingly, in the illustrated example, a subset of thereceived (raw) data to be forwarded to the backend processing resourcesis extracted at 340. For example, only those data elements needed inmost or all cases by data processing algorithms may be extracted fromthe received (raw) data. For example, in the case where the raw datareceived comprises ‘layer 3’ network information, the data elementsextracted for forwarding to the backend processing may comprise:

-   -   session connection setup information;    -   session closedown information;    -   identification of radio links involved in session;    -   measured radio propagation delay;    -   radio bearer or bearers involved during session;    -   type of session;    -   measurement reports;    -   received signal code power;    -   subscriber information;    -   etc.

By extracting only a subset of the raw data for forwarding to thebackend data processing in this manner, a reduced bandwidth may be usedto forward such data to the backend processing resources.

Geolocation information is then determined at 350 for data segmentswithin the extracted subset of the received data. Geolocation is theidentification of the real-world geographical location of an object,such as a mobile communication unit. Geolocation techniques are wellknown in the art, and as such need not be described in any greaterdetail herein. Nevertheless, one example implementation of geolocationis described in the Applicant's co-pending International PatentApplication No. WO 2010/081658 entitled “GEO-LOCATION IN A WIRELESSCOMMUNICATION NETWORK” which is herein incorporated by reference.

Next, at step 360, the geolocation information determined at step 350 isused to identify to which predefined geographical regions the individualdata segments within the extracted subset of received data relate. Thedata segments are then forwarded to backend processing resourcesassociated with index values of their respective identified geographicalregions, at step 370.

For example, based on Table 1 above: data segments that have beenidentified as relating to the geographical regions to which index values1 to 4 have been assigned would be forwarded to database server A; datasegments that have been identified as relating to the geographicalregions to which index values 5 and 6 have been assigned would beforwarded to database server B; data segments that have been identifiedas relating to the geographical regions to which index values 7 and 8have been assigned would be forwarded to database server C, etc. It willbe appreciated that, by allocating backend processing resources topredefined geographical regions based on parameters such as anticipatedvolumes of data for individual geographical regions, processingcapacities of backend processing resources, etc., and then forwardingthe data segments within the received data to backend processingresources based on their respective geolocation information, the datasegments are effectively forwarded to backend processing resourced basedon those parameters (i.e. anticipated volumes of data for individualgeographical regions, processing capacities of backend processingresources, etc.).

In the example illustrated in FIG. 1, a connection matrix 125 isillustrated as operably coupling the allocation components 150 to thebackend processing resources 120, and via which the data segments areforwarded to backend processing resources 120. However, it will beappreciated that any suitable medium for enabling the data segments tobe forwarded to the appropriate backend processing resources 120 may beimplemented. The method then ends, at 380.

In this manner, data to be processed is ‘sharded’ based on thegeolocation information of the data segments, and allocated to backendprocessing resources accordingly. Advantageously, because wirelesscommunication network data queries typically relate to datacorresponding to particular geographical locations/regions,geographically sharding the data in the manner described enables thedata to be allocated across a relatively large number of relativelysmall processing resources whilst still enabling queries to be servicedby a single (or few) processing resources. This enables a significantamount of parallelism to be implemented within the data processingsystem, significantly speeding up the processing of data, therebyfacilitating the near-real-time access of data by users. Furthermore, byenabling the use of relatively small processing resources in thismanner, additional processing resources can be added in relatively smallincrements, enabling a more cost effective manner of increasing (ordecreasing) processing capabilities as required.

Thus, in accordance with some examples of the present invention, it isproposed that a large number of small, low-cost, processing and storageelements are used to provide the backend processing resources. It willbe appreciated that the backend processing resource hardware may in someexamples be co-located with one or more of the MSCs 110 hardware, or asimilar location. Equally, it may be located in a separate(operator-owned or third-party) data centre.

As will be appreciated by a skilled person, data is typically receivedby the MSCs 110 as a substantially continuous stream of data from theRNCs 112. As such, for some examples of the present invention the methodsteps of FIG. 3 are to be understood as being implemented as asubstantially continuous process whereby the various steps are performedsubstantially simultaneously in a pipeline manner for received datastreams.

Referring back to FIG. 1, in this illustrated example it is contemplatedthat the extraction of a subset of the received data at step 340 of themethod of FIG. 3 may be performed by the MSCs 110. Furthermore, it iscontemplated that the allocation and forwarding of data segments tobackend processing resources based on their respective identifiedpredefined geographical regions at step 370 of the method of FIG. 3 isperformed by the allocation components 150. In this manner, the MSCs,upon receipt of the raw data streams from the RNCs 112, may extract thesubset of data to be forwarded to the backend processing, therebyreducing the required bandwidth for the transmission of data to thebackend processing resources. The extracted subset of data may then beprovided to the allocation components 150 for forwarding to theappropriate backend processing resources.

The determining of geolocation information at step 350 of the method ofFIG. 3 and the identification of which predefined geographical regionsthe data segments relate to, at step 360 of the method of FIG. 3, may beperformed by either the MSCs 110 or the allocation components 150, andequally steps 350 and 360 may be split between the MSCs 110 and theallocation components 150.

In the example illustrated in FIG. 1, the allocation components 150 havebeen illustrated as discrete components of the data processing system100, for example implemented within computer systems separate to theMSCs 110. However, as illustrated in FIG. 5, it is contemplated thatsome or all of the allocation components 150 mayadditionally/alternatively be implemented (entirely or in part) withinthe MSCs 112.

It will be appreciated that the re-allocation of geographical regions toback processing resources and/or the re-definition of geographicalregions, and the re-assignment of index values therefor, may beperformed at any time, for example by implementing the method steps ofFIG. 2.

Referring now to FIG. 6, there is illustrated a typical computing system600 that may be employed to implement data processing functionality inembodiments of the invention. For example, a computing system of thistype may be used within one or more of the MSCs 110, allocationcomponents 150 and/or backend processing resources 120 of FIG. 1. Thoseskilled in the relevant art will also recognize how to implement theinvention using other computer systems or architectures. Computingsystem 600 may represent, for example, a desktop, laptop or notebookcomputer, hand-held computing device (PDA, cell phone, palmtop, etc.),mainframe, server, client, or any other type of special or generalpurpose computing device as may be desirable or appropriate for a givenapplication or environment. Computing system 600 can include one or moreprocessors, such as a processor 604. Processor 604 can be implementedusing a general or special-purpose processing engine such as, forexample, a microprocessor, microcontroller or other control module. Inthis example, processor 604 is connected to a bus 602 or othercommunications medium.

Computing system 600 can also include a main memory 608, such as randomaccess memory (RAM) or other dynamic memory, for storing information andinstructions to be executed by processor 604. Main memory 608 also maybe used for storing temporary variables or other intermediateinformation during execution of instructions to be executed by processor604. Computing system 600 may likewise include a read only memory (ROM)or other static storage device coupled to bus 602 for storing staticinformation and instructions for processor 604.

The computing system 600 may also include information storage system610, which may include, for example, a media drive 612 and a removablestorage interface 620. The media drive 612 may include a drive or othermechanism to support fixed or removable storage media, such as a harddisk drive, a floppy disk drive, a magnetic tape drive, an optical diskdrive, a compact disc (CD) or digital video drive (DVD) read or writedrive (R or RW), or other removable or fixed media drive. Storage media618 may include, for example, a hard disk, floppy disk, magnetic tape,optical disk, CD or DVD, or other fixed or removable medium that is readby and written to by media drive 612. As these examples illustrate, thestorage media 618 may include a computer-readable storage medium havingparticular computer software or data stored therein.

In alternative embodiments, information storage system 610 may includeother similar components for allowing computer programs or otherinstructions or data to be loaded into computing system 600. Suchcomponents may include, for example, a removable storage unit 622 and aninterface 620, such as a program cartridge and cartridge interface, aremovable memory (for example, a flash memory or other removable memorymodule) and memory slot, and other removable storage units 622 andinterfaces 620 that allow software and data to be transferred from theremovable storage unit 618 to computing system 600.

Computing system 600 can also include a communications interface 624.Communications interface 624 can be used to allow software and data tobe transferred between computing system 600 and external devices.Examples of communications interface 624 can include a modem, a networkinterface (such as an Ethernet or other NIC card), a communications port(such as for example, a universal serial bus (USB) port), a PCMCIA slotand card, etc. Software and data transferred via communicationsinterface 624 are in the form of signals which can be electronic,electromagnetic, and optical or other signals capable of being receivedby communications interface 624. These signals are provided tocommunications interface 624 via a channel 628. This channel 628 maycarry signals and may be implemented using a wireless medium, wire orcable, fibre optics, or other communications medium. Some examples of achannel include a phone line, a wireless phone link, an RF link, anetwork interface, a local or wide area network, and othercommunications channels.

In this document, the terms ‘computer program product’‘computer-readable medium’ and the like may be used generally to referto media such as, for example, memory 608 storage device 618 or storageunit 622. These and other forms of computer-readable media may store oneor more instructions for use by processor 604, to cause the processor toperform specified operations. Such instructions, generally referred toas ‘computer program code’ (which may be grouped in the form of computerprograms or other groupings), when executed, enable the computing system600 to perform functions of embodiments of the present invention. Notethat the code may directly cause the processor to perform specifiedoperations, be compiled to do so, and/or be combined with othersoftware, hardware, and/or firmware elements (e.g. libraries forperforming standard functions) to do so.

As used herein, the expression non-transitory will be understood torefer to the non-ephemeral nature of the storage medium itself ratherthan to a notion of how long the stored information itself may persistin a stored state. Accordingly, memories that might otherwise be viewed,for example, as being volatile (such as many electronically-erasableprogrammable read-only memories (EPROM's) or random-access memories(RAM's)) are nevertheless to be viewed here as being “non-transitory”whereas a signal carrier in transit is to be considered “transitory”notwithstanding that the signal may remain in transit for a lengthyperiod of time.

In an embodiment where the elements are implemented using software, thesoftware may be stored in a computer-readable medium and loaded intocomputing system 600 using, for example, removable storage drive 622,drive 612 or communications interface 624. The control module (in thisexample, software instructions or computer program code), when executedby the processor 604, causes the processor 604 to perform the functionsof the invention as described herein.

Furthermore, the inventive concept can be applied to any signalprocessing circuit. It is further envisaged that, for example, asemiconductor manufacturer may employ the inventive concept in a designof a stand-alone device, such as a microcontroller, digital signalprocessor, or application-specific integrated circuit (ASIC) and/or anyother sub-system element.

It will be appreciated that, for clarity purposes, the above descriptionhas described embodiments of the invention with reference to differentfunctional units and processors. However, it will be apparent that anysuitable distribution of functionality between different functionalunits or processors may be used without detracting from the invention.For example, functionality illustrated to be performed by the sameprocessor or controller may be performed by separate processors orcontrollers. Hence, references to specific functional units are only tobe seen as references to suitable means for providing the describedfunctionality, rather than indicative of a strict logical or physicalstructure or organization.

Because the illustrated embodiments of the present invention may for themost part, be implemented using electronic components and circuits knownto those skilled in the art, details will not be explained in anygreater extent than that considered necessary as illustrated above, forthe understanding and appreciation of the underlying concepts of thepresent invention and in order not to obfuscate or distract from theteachings of the present invention.

In the foregoing specification, the invention has been described withreference to specific examples of embodiments of the invention. It will,however, be evident that various modifications and changes may be madetherein without departing from the broader spirit and scope of theinvention as set forth in the appended claims. Other modifications,variations and alternatives are also possible. The specifications anddrawings are, accordingly, to be regarded in an illustrative rather thanin a restrictive sense.

In the claims, any reference signs placed between parentheses shall notbe construed as limiting the claim. The word ‘comprising’ does notexclude the presence of other elements or steps then those listed in aclaim. Furthermore, the terms “a” or “an,” as used herein, are definedas one or more than one. Also, the use of introductory phrases such as“at least one” and “one or more” in the claims should not be construedto imply that the introduction of another claim element by theindefinite articles “a” or “an” limits any particular claim containingsuch introduced claim element to inventions containing only one suchelement, even when the same claim includes the introductory phrases “oneor more” or “at least one” and indefinite articles such as “a” or “an.”The same holds true for the use of definite articles. Unless statedotherwise, terms such as “first” and “second” are used to arbitrarilydistinguish between the elements such terms describe. Thus, these termsare not necessarily intended to indicate temporal or otherprioritization of such elements. The mere fact that certain measures arerecited in mutually different claims does not indicate that acombination of these measures cannot be used to advantage.

We claim:
 1. A method of processing data for at least one wirelesscommunication network, the method comprising: determining geolocationinformation for data segments received at a plurality of distributedcomponents of a data processing system, the data segments being receivedfrom at least one network element of the wireless communication network;and forwarding the data segments to backend processing resources basedat least partly on their respective geolocation information.
 2. Themethod of claim 1, wherein the method comprises forwarding the datasegments to backend processing resources further based on at least oneof: an anticipated volume of data for individual geographical regions;and a processing capacity of backend processing resources.
 3. The methodof claim 1, wherein the method comprises: allocating predefinedgeographical regions to backend processing resources; identifying towhich predefined geographical regions the data segments relate based atleast partly on their respective geolocation information; and forwardingthe data segments to the backend processing resources to which thepredefined geographical regions to which they relate have beenallocated.
 4. The method of claim 3, wherein the method comprises:assigning an index value to each predefined geographical region;associating backend processing resources with the index values assignedto the predefined geographical regions allocated thereto; determininggeolocation information for the data segments; identifying to whichpredefined geographical regions received data segments relate based atleast partly on their respective geolocation information; and forwardingthe data segments to backend processing resources associated with theindex values of their respective identified predefined geographicalregions.
 5. The method of claim 3, wherein the method comprisesallocating backend processing resources to predefined geographicalregions based at least partly on at least one of: an anticipated volumeof data for individual geographical regions; and a processing capacityof backend processing resources.
 6. The method of claim 5, wherein themethod comprises: defining geographical regions of substantially equalsize; and allocating backend processing resources to the predefinedgeographical regions to take into account variations in anticipatedvolumes of traffic between geographical regions.
 7. The method of claim5, wherein the method comprises: defining geographical regions toachieve a substantially uniform anticipated volume of traffic withineach geographical region; and allocating backend processing resources tothe predefined geographical regions to achieve a substantially evenallocation of geographical regions to backend processing resources. 8.The method of claim 1, wherein the data segments forwarded to thebackend processing resources comprises at least one of: sessionconnection setup information; session closedown information;identification of radio links involved in session; measured radiopropagation delay; radio bearer or bearers involved during session; typeof session; measurement reports; received signal code power; andsubscriber information.
 9. The method of claim 1, wherein the methodcomprises, at the backend processing resources: pre-processing receiveddata to enable efficient storage and access of the received data; andstoring the pre-processed data for subsequent processing to generatestatistical data for the wireless communication network.
 10. The methodof claim 9, wherein the method further comprises, at the backendprocessing resources, performing near-real-time processing of thestored, pre-processed data in response to requests from clientapplications.
 11. The method of claim 1, wherein the method comprises:receiving at a plurality of distributed components of a data processingsystem from at least one network element of the wireless communicationnetwork; extracting a subset of the received data; determininggeolocation information for data segments within the extracted subset ofthe data; and forwarding the data segments within the extracted subsetof the data to backend processing resources based at least partly ontheir respective geolocation information, wherein the method furthercomprises, at the backend processing resources: receiving at the backendprocessing resources data segments from the plurality of distributedcomponents of the processing system; and processing the receivedextracted data segments to generate statistical data for the wirelesscommunication network.
 12. The method of claim 1, wherein the datareceived at the plurality of distributed components of the dataprocessing system comprises raw communication session data for allcommunication sessions of the respective network elements.
 13. Themethod of claim 12, wherein the method further comprises, at theplurality of distributed components of the data processing system,storing the received raw communication session data.
 14. A dataprocessing system for processing data from at least one wirelesscommunication network; the data processing system comprising at leastone allocation component arranged to: determine geolocation informationfor data segments received at a plurality of distributed components of adata processing system, the data segments being received from at leastone network element of the wireless communication network; and forwardthe data segments to backend processing resources based at least partlyon their respective geolocation information.
 15. An allocation componentof a data processing system for processing data from at least onewireless communication network; the allocation component being arrangedto: determine geolocation information for data segments received at aplurality of distributed components of a data processing system, thedata segments being received from at least one network element of thewireless communication network; and forward the data segments to backendprocessing resources based at least partly on their respectivegeolocation information.
 16. A distributed component of a dataprocessing system for processing data from at least one wirelesscommunication network; the distributed component of the data processingsystem being arranged to: receive data from at least one network elementof the wireless communication network; determine geolocation informationfor data segments within the received data; and forward data segmentswithin the received data to backend processing resources based at leastpartly on their respective geolocation information.
 17. A non-transitorycomputer program product having computer program code stored thereon forprogramming a data processing module to perform a method of processingdata for at least one wireless communication network, the computerprogram code being arranged to: determine geolocation information fordata segments received at a plurality of distributed components of adata processing system, the data segments being received from at leastone network element of the wireless communication network; and forwardthe data segments to backend processing resources based at least partlyon their respective geolocation information.